home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / wfc007.000 / include / sockets.hpp < prev    next >
C/C++ Source or Header  |  1996-04-08  |  2KB  |  89 lines

  1. #ifndef SOCKET_CLASS_HEADER
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like.
  9. */
  10.  
  11. #define SOCKET_CLASS_HEADER
  12.  
  13. class CSimpleSocket : public CDummyFile
  14. {
  15.    private:
  16.  
  17.       void m_Initialize( void );
  18.  
  19.    protected:
  20.  
  21.       CString m_PortName;
  22.  
  23.       short m_PortNumberInNetworkByteOrder;
  24.  
  25.       SOCKET m_SocketID; 
  26.  
  27.       void m_ClearAliasList( void );
  28.  
  29.    public:
  30.  
  31.       CSimpleSocket();
  32.       CSimpleSocket( SOCKET client_id );
  33.  
  34.       /*
  35.       ** Destructor should be virtual according to MSJ article in Sept 1992
  36.       ** "Do More with Less Code:..."
  37.       */
  38.  
  39.       virtual ~CSimpleSocket();
  40.  
  41.       CString  Address; 
  42.       CString  Name;
  43.       CPtrList AliasList; // Pointers to CString's
  44.  
  45.       static void __stdcall StartWindowsSockets( void );
  46.       static void __stdcall StopWindowsSockets( void );
  47.       static void __stdcall TranslateErrorCode( DWORD error_code, LPSTR destination_string, DWORD size_of_destination_string );
  48.  
  49.       /*
  50.       ** Getting data from the object
  51.       */
  52.  
  53.       virtual void   GetAddress( CString& a ) const;
  54.       virtual SOCKET GetID( void ) const;
  55.       virtual void   GetName( CString& a ) const;
  56.       virtual void   GetPort( short& p ) const;
  57.       virtual void   GetPort( CString& p ) const;
  58.  
  59.       /*
  60.       ** Putting data into the object
  61.       */
  62.  
  63.       virtual void SetAddress( const char *a ); // Fills in Address, Name and AliasList
  64.       virtual void SetID( const SOCKET id );
  65.       virtual void SetName( const char *a );
  66.       virtual void SetPort( const char *p );
  67.       virtual void SetPort( const short p );
  68.  
  69.       /*
  70.       ** Misc Functions
  71.       */
  72.  
  73.       virtual BOOL Open( void ) = 0;
  74.       virtual BOOL Open( const char *channel_name, UINT port_number = 23, CFileException* pError = NULL ) = 0;
  75.       virtual void Close( void );
  76.       virtual BOOL IsDataWaiting( void );
  77.       virtual void Write( const CString& data_to_write );
  78.       virtual void Write( const VOID *buffer, const long number_of_bytes_to_write );
  79.  
  80.       virtual UINT Read( VOID *buffer, const int max_bytes );
  81.       virtual void Read( CString& line_to_read );
  82.  
  83.       // Overriding CObject Functions
  84.  
  85.       void Dump( CDumpContext& dc ) const;
  86. };
  87.  
  88. #endif // SOCKET_CLASS_HEADER
  89.